package database

import (
	"egin/pkg/config"
	"fmt"

	"go.uber.org/zap"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

var _db_mysql *gorm.DB

func init() {
	dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset="+config.C().Mysql.Charset+"&parseTime=true",
		config.C().Mysql.User,
		config.C().Mysql.Password,
		config.C().Mysql.Host,
		config.C().Mysql.Port,
		config.C().Mysql.Dbname,
	)

	loggers := New(zap.L())

	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		Logger: loggers.LogMode(logger.Info),
	})

	if err != nil {
		panic(err.Error())
	}
	sqlDB, err := db.DB()

	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
	sqlDB.SetMaxIdleConns(config.C().Mysql.MaxIdleConns)
	// SetMaxOpenConns 设置打开数据库连接的最大数量
	sqlDB.SetMaxOpenConns(config.C().Mysql.MaxOpenConns)

	_db_mysql = db
}

//Db huo
func Db() *gorm.DB {

	return _db_mysql
}
